This program is free for any use (except you can’t sell it obviously).
• Contents
What MacTCP Watcher Does
Using MacTCP Watcher
How It Works
Limitations
Small Print
Warranty
Fine Print
Acknowledgements
Version History
The Author
• What MacTCP Watcher Does
MacTCP Watcher displays the internals of MacTCP, including a list of all the current TCP connections and information on them. I tried to report errors as much as possible, so it should be possible to use it as a test program, at least as far as checking that MacTCP initializes correctly. It will also test the Domain Name System, as well as test sending UDP and TCP echos, and ICMP Ping packets. The echo tests require a nice unix box to support the echo ports, so to get around this, I’ve also implemented a UDP and TCP echo port server in MacTCP Watcher, so you can test it to yourself, as well as to other Macs running MacTCP Watcher.
Note: DNS means Domain Name System, it is the service that converts names (like sumex-aim.stanford.edu) into IP numbers (like 36.44.0.6).
• Using MacTCP Watcher
Simply run it and play with the windows. There isn’t much I can describe except the information, and for the most part, your guess is as good as mine (or at least, if you don’t already know what an entry means, it’s unlikely I’ll be able to explain in to you).
To test out MacTCP on your Mac, do this:
Launch MacTCP Watcher.
Choose Show MacTCP Info, note the IP number at the top right.
Choose Test ICMP (click the Ping button), and type in the IP number.
Note: MacTCP appears to have a bug (suprise!) that makes the ICMP Pings fail to return from your own machine. This happens on some machines and not others. I’ve tested it the Apple’s own MPing program, and the same thing happens. If all the Ping packets time out, try using the UDP test instead.
If any of these fail, MacTCP is most probably badly configured. Check the configuration in the MacTCP Control Panel. If it looks ok, reinstall MacTCP by deleting MacTCP, MacTCP Prep, and MacTCP DNR from all folders in the System Folder (ie, the System Folder, Preferences, Control Panels, and Extensions). Reinstall the control panel from the original disks, and reset the configuration. Reboot. Try again. If it still fails, you have a problem, try reading Eric Behr’s MacTCP Info file, included in this package (Thanks Eric!). If it still fails, you’re probably going to have to talk to a local expert. If you *are* the local expert, you really have a problem.
Note: If the Mac doesn’t have a valid DNS name, MacTCP Watcher will complain when it is launched. If you have to deal with a lot of macs with this problem, you may want to disable this feature. You can do this by changing the STR# 900 string from “Report” to anything else.
Ok, now try Test UDP and Test TCP to your Mac's IP. They should work.
Now, find another machine on the network, as near (network-wise) as you can manage (a Mac running MacTCP Watcher that passes the above tests will do, a unix machine will also do). Using its IP, try the ICMP test. If that works, try the UDP and TCP tests as well. Some unix machines do not support the UDP or TCP echo tests, you can see if they support the TCP test by telneting to port 7 on the machine in question, if it connects and echos what you type, it works, and should pass the test.
Repeat the above for various machines further away.
Ok, now test your Name Server. Try the DNS Test with a name of a near by machine, it should tell you the IP. Now try again with the IP, it should tell you the name. Repeat for your Mac, and for other names and addresses.
If none of these work, then your Mac’s DNS is badly set up. Read Eric’s MacTCP Info document. Basically, the DNS should be set up in the control panel like this:
[Sorry for the spaces, but TeachText doesn’t offer much choice]
your.domain. 1.2.3.4 (•)
. 1.2.3.4 ( )
. 5.6.7.8 ( )
Where 1.2.3.4 is your primary name server, and 5.6.7.8 is your secondary. The domains for the second two are just a full stop (.).
If the name lookup works (ie, finds the IP address), but the reverse doesn’t find the name, this generally indicates a problem with the Domain Name Server itself, ask the administrator of the machine why it fails.
• How It Works
It simply calls the MacTCP driver and asks it for the information, and displays it.
The ICMP Test sends ICMP Ping packets, and counts (and matches) the replies. The UDP Test sends UDP echo packets to port 7 and counts (and matches) the replies. The TCP Test connects to the TCP echo port (port 7 again) and sends a line and checks for the response. The DNS Test looks up the IP for the name, or the name for the IP. All tests will accept either names or IP numbers, but obviously if you use a name, you are implicitly testing the DNS.
A server for each of the TCP and UDP echo ports is built in to MacTCP Watcher, and echos anything sent to them. MacTCP automatically echos the ICMP Ping packets.
• Limitations
MacTCP Watcher requires MacTCP 1.1 or later, it should work with System 6 or 7, and probably requires the 128k ROM (or later).
• Small Print
This program is Freeware, you can use it or distribute it as long as you don’t charge for it (reasonable download costs such as Compu$erve are ok I guess (although who would call Compu$erve’s download costs reasonable?)). It would probably be a good idea to keep this documentation file with the program, but I’m hardly likely to check up on you now am I! I don’t guarantee any support, but I always answer my Email. If I don’t answer Email it’s because your message didn’t get to me, or my reply bounced (so try again, and include a valid internet address if you can). It may be included on the Info-Mac CD, but not on any other CDs without my permission. It may NOT be included on any disk costing more than $5 without my permission.
• Warranty
There is absolutely NO warranty, guarantee, hint, suggestion or anything else that would lead anyone to think that MacTCP Watcher does anything stated in this documentation. It usually does not destroy data (systems, hardware, etc), and has sometimes worked on my Mac with System 7.0. It will probably not work with the 64k ROM. It might work with the other models, but I don't have them all, so I don't know. If it works on your system (or especially if it doesn’t!), send me a postcard or some Email and let me know!
• Fine Print
Peter Lewis hereby disclaims all warranties relating to this software, whether express or implied, including without limitation any implied warranties of merchantability or fitness for a particular purpose. Peter Lewis will not be liable for any special, incidental, consequential, indirect or similar damages due to loss of data or any other reason, even if Peter Lewis or an agent of his has been advised of the possibility of such damages. In no event shall Peter Lewis be liable for any damages, regardless of the form of the claim. The person using the software bears all risk as to the quality and performance of the software.
• Acknowledgements
Thanks to everyone on the net for being a lot of fun.
• Version History
Todo
Doesn't work well (at all?) with Hosts file DNS.
Doesn't seem to work too well with MacSLIP?
Reduce CPU utilisation
? Self ping doesn't work on some machines?
? Expect IOCompletion to be called before PBControl returns
? Launch MW, cmd-L, cmd-Q and the Mac locks up (may require no TCP connections)
Better reporting for the TCP and DNS tests
Better reporting of why MacTCP fails on startup.
A program that pinged IPs every so often, and tracks their upness
(audible warnings, green/red lights, etc).
Send Unacked data is large negative, WTF does it mean?
Dump data to a file
Traceroute facility (how?)
Implement the netstat port perhaps?
Some way of measuring rates?
v1.1.0
~If MW is the first TCP app, nothing shows up in the connection list, including the echo.
~Connection List doesn't always update?
~Implement a method to copy the resulting IP or Name from the DNS test
v1.1.0d1
~ICMP test has bugs, crashes or fails to quit with lost packets.
~Totally revamped the ICMP and UDP test displays.
~Continuous ICMP tests.
~Min/Max/Average (Ping style) on ICMP and UDP tests.
~Retest button to avoid reconfirming the IP
~Way to turn off Reverse Name Lookup Failed reporting - change STR#=900
v1.0.0
~Dont open the info window if we failed to open MacTCP.
v1.0.0d5
~Longer timeout for ping/UDP packets.
~Open the info window on startup
~Test buttons at the bottom of the Info window?
~Response times for UDP/ICMP packets.
~Command keys for tests
~Show the default IP in the GetIP dialog (ie the last IP entered)
~Added Eric Behr’s MacTCP Info file - Thanks Eric!
v1.0.0d4
~Way of pinging (ICMP Echo)
~TCP&UDP echo port server
~Imporved the way windows are updated, should be faster and more efficient.
v1.0.0d3
~Way of testing the DNS
~Way of testing UDP
~Way of testing TCP
~Better reporting of errors
~Cleaned up the list window (using an LDEF)
~Smaller Font
~ptr addr -> process name (use Process Manager under System 7 only)
FetchNews 1.0.0b - Fetch News for use with NewsWatcher’s demo mode.
MacTCP Watcher 1.1.0 - Display MacTCP’s state information.
Bolo Finder 1.0.1 - Display the results from Mike Ellis' Bolo Tracker.
Bolo RandomMap 1.1.0 - Generate a random map for Bolo.
You can get the latest development versions from redback.cs.uwa.edu.au, but please use the major archives for released version if at all possible. Redback is a long long way from most people, and using it wastes bandwidth on the Australian-US satelite link which is overly congested already. So use the versions posted to the archives (like sumex-aim.stanford.edu or mac.archive.umich.edu), and only use the development versions if you have some specific problem - in which case tell me!)
Send postcards, comments, bug reports, and wishes to: